對抗例就是透過演算法生成能夠讓AI誤判的資料,舉例來說若能在資料上加入一些擾動雜訊造成AI的識別力下降,這個被加入雜訊的資料就是對抗例。
最早發現對抗例的是Szegedy et al(2013),他們在進行圖形辨識時發現非常像的圖片會造成模型誤判成不同類別,其中兩張圖片可能只是幾個像素的變化就會輸出完全不同的結果。
而後許多研究者發現這個漏洞可能會造成AI的不安全性,在生活中到處存在AI影子下,如果有非法分子以這個漏洞來進行AI攻擊,可能會產生嚴重的後果,因此在近幾年許多學者開始投入研究可能的攻擊手法和防禦手法。
攻擊目的通常是要讓AI產生錯誤結果,一種攻擊是單純讓AI輸出非預期結果,另一種則是讓AI輸出攻擊者想要的結果。
線性擾動
一種簡單攻擊手法是透過類神經都是以向量來表達資料的特性來進行攻擊,假設我們有一個線性模型y=wx+b,若能製造一個與x向量非常像的雜訊x'向量,通常非常像的定義是x與x'向量互相平行,把雜訊加到x輸入到模型後會得到y'= w(x+x')+b = wx+wx'+b,若找到一組x'讓wx'變很大或很小,則y'就會得到非預期結果,這樣就完成攻擊。
線性擾動攻擊是需要預先知道被攻擊者所使用的模型架構才能攻擊,屬於較低階攻擊手法,而後學者已經陸續研究出只需知道被攻擊者模型輸入和輸出的資料配對就能產生對抗例進行攻擊。
防禦攻擊可大約分成兩種類型,一種是被動防禦,一種是主動防禦。
被動防禦
被動防禦是指模型能夠辨識出對抗例,提早進行相關處置。
常見被動防禦模型訓練是加深類神經網路層、改變激活函數或損失函數等方法。
主動防禦
主動防禦是指模型以更全面方式進行訓練,讓攻擊者無法找出可能的對抗例。
常見主動防禦模型訓練方法就是預先製造出可能的對抗例,在訓練模型時一起加入訓練,讓模型對相關類型的對抗例有免疫效果,缺點就是無法窮舉所有可能類型對抗例。
1. 運用對抗例攻擊深度學習模型(一)
2. 综述论文:对抗攻击的12种攻击方法和15种防御方法